約 3,727,685 件
https://w.atwiki.jp/hiroyuki12/pages/70.html
Name ksplit Version 0.6.0 Release 1 Summary ksplit Summary(ja) ksplit License GPL Group System Applications/Accessories URL http //chrm.info/linux/ksplit.html Source0 %{name}-%{version}.tar.gz BuildRoot %{_tmppath}/%{name}-%{version}-root BuildRequires XOrg-devel, libzvt-devel, libjpeg-devel, qt-devel, arts-devel, fam-devel, libidn-devel #Vendor Project Vine #Distribution Vine Linux Packager hiroyuki hiroyuki12@gmail.com %description ksplit %description -l ja ksplit %prep %setup -q %build %configure --prefix=%{_prefix} make %install rm -rf $RPM_BUILD_ROOT make install DESTDIR=$RPM_BUILD_ROOT %clean rm -rf $RPM_BUILD_ROOT %post -p /sbin/ldconfig %postun -p /sbin/ldconfig %files %defattr(-,root,root,-) %{_bindir}/* %{_datadir}/applnk/Applications/* %{_datadir}/icons/*/*/apps/* %{_datadir}/locale/de/LC_MESSAGES/* %changelog * Mon Oct 01 2007 hiroyuki hiroyuki12@gmail.com 0.6.0-1 - 1st Release. # end of file
https://w.atwiki.jp/ohmichi_linux/pages/12.html
()/Linux 概要 引数 解析 呼び出し元 ()/Linux ソースファイル
https://w.atwiki.jp/linux2ch/pages/53.html
インストールしたシステムについてのFAQ。 インストールしたシステムについてのFAQ。 ログイン、ログアウト rootユーザーって何? root ユーザーに切り替えたい (su) "root" に二つの意味があるみたいなんですが・・。 コマンド入力例の $ とか % とか # って何ですか? ~/ って何ですか? 終了/再起動はどうやったらできますか? (shutdown) ログイン時やパスワード設定時にパスワードを入力しても何も表示されません。 パスワードを削除したい (vipw) コンソール 端末エミュレータやらターミナルって何ですか? 定番 デスクトップ環境に付いてる奴 コンソールやターミナルの作業の記録を取りたい (script, tee) ビープ音(ベル)を消したい。 コマンドの基本 コマンドの打ち込み方が分かりません。 先生!! CUI の基礎的な使い方すらわかりません! コマンドは一字一句全部入力しなければいけないのですか? 何をどうしていいのやら分からないレベル ??をしたいんだけどどうすればいいのだろう? どんなコマンドがあるんだろうか? このコマンド、どんなオプションがあるんだろうか? man ページにある番号の意味は何? コマンド補完を使おう。 コマンドを実行しようとすると command not found と言われます。 1. コマンドがそもそも存在しない。 2. コマンドは存在しても、PATH に含まれるディレクトリ以外の場所にある。 Tips フロッピーや CD-R に収まらないファイルを分割、結合したい。(split, cat) テキストファイルの中の文字列を検索したいんですが テキストファイルの中の文字列を別の文字列に置換したいんですが コマンド表示結果の2番目や3番目の部分だけ抜き出したいんですが (awk) ファイル名の文字コードを一括変換したい ファイルやディレクトリの違い(差分)を調べたい (diff) 設定ファイルを書き換えたい システムのタイムゾーンを変更したい。 知らない間にcoreという名前のファイルができてしまった load average はどうやって調べるんですか? (top, uptime, xload) 異様にメモリを食っているようなのですが、問題ないでしょうか? 知っているとちょっと便利なコマンド ファイルの中身を観覧 less システム情報の表示 uname 現在時刻を表示 date カレンダーを表示 cal Linux カーネル 2.6 についての話題や注意点など。 参考 URL Linux カーネル、デバイスドライバについて詳しく知りたい。 Linux カーネル付属文書の翻訳はどこかにない? カーネル 2.6 にアップグレードしてみたところ、X上でターミナルが立ち上がらなくなりました。 NPTL を採用したカーネルを使うとあるソフトが動かなくなってしまいました カーネルの仕組み コンテキスト切り替え 仮想アドレス空間とページ 割り込み プロセスとスレッド デバイスドライバ ファイルシステム ネットワーク シグナル システムコールと入出力 カーネルモジュールのロード 共有ライブラリ バイナリの依存している共有ライブラリの情報を見たい システムコールをトレースしたい gccとmake gccの主なコマンド make ログイン、ログアウト ブート手順についてのFAQはBootFAQsに移動しました。 rootユーザーって何? rootユーザー(スーパーユーザー)はUNIXに用意されている特別なユーザー。rootユーザーには、マシンを完全に掌握できるroot権限(管理者権限)が与えられる。 UNIXでは通常、そのユーザーにとって操作できるように所有権とパーミッションが設定されているファイルしか操作することができないが、root権限の元で実行されたプログラムは、ファイルの所有権に関わらずあらゆることを実行することができる。 そのため、全てのユーザーにとって共有されるシステム一般のファイルでも、rootになれば改変できる。 rootユーザーは非常に強力なので、常に使っているとあらぬ操作でシステムを動作不能にさせてしまう可能性がある。通常は普通のユーザーで操作を行い、システム全体を調整する必要があるときだけrootユーザーを使おう。 なぜ root で作業をしてはいけないのですか root ユーザーに切り替えたい (su) 普通のユーザーでログインしてるときに root や他のユーザーに切り替わりたいときは、 su を実行すると別のユーザーになった上で新しいシェルを立ち上げてくれる。 $ su - Password (root のパスワードを入力) # (rootのシェルになった) root のシェルではコマンド入力行の $ が # と表示される。 # exit $ (ユーザーに戻る) 前のユーザーに戻るときは exit でシェルを終了させる。 "root" に二つの意味があるみたいなんですが・・。 root というとシステム管理権限のあるスーパーユーザを指すことが多いけど、ファイルシステムの一番根元の事( / )も root と呼ばれる。 というわけで root ユーザ(もしくはスーパーユーザ)、ルートディレクトリなどと区別して記述するといいかと。 コマンド入力例の $ とか % とか # って何ですか? コマンドを打ち込むユーザーの権限 (一般ユーザー/root ユーザー) のことです。 $ %は一般ユーザーでの操作。# は root 権限を持った スーパーユーザー (root ユーザー) での操作を示します。 相手に一般ユーザーでの作業なのかスーパーユーザーでの作業なのかを判別するのに使われます。 ~/ って何ですか? ~/ はユーザのホームディレクトリのことです。例えば hoge という名前のユーザなら、/home/hoge が ~/ となります。 $ cd ~/ $ pwd /home/hoge (ただ単に cd とだけ打てばホームディレクトリに行けるけど、あくまで例として。) チルダ展開 終了/再起動はどうやったらできますか? (shutdown) shutdown を使う。実行する前に root になっておこう。停止する場合は -h、再起動する場合は -r オプションをつける。 # shutdown -h now # shutdown -r now halt、reboot などのコマンドも使えます。終了時に root になる必要があるのは、root で実行するサーバーなどのデーモンを終了させる必要があるからです。 ログイン時やパスワード設定時にパスワードを入力しても何も表示されません。 コンソール上の各種パスワード入力プロンプトでは、入力した文字の情報が他の人にわからないように何も表示されないようになっています。 文字が表示されなくてもそのままかまわずパスワードを打ち、続いて Enter キーを打ちましょう。 打ち間違えたり、もう一度最初から入力したい時は Ctrl+u (=行削除) キーを押すと、入力した文字をすべて消去してパスワードを再入力することができます。 http //www.atmarkit.co.jp/flinux/rensai/linuxtips/092missidpass.html パスワードを削除したい (vipw) vipw コマンドで と の間にはさまれた意味不明な文字列を削除する。vipw (=vi) の使いかたはしらべてね。 /etc/shadow を直接編集してもいいけれどもお薦めしない。そもそもパスワードを削除すること自体お薦めしない。 コンソール 端末エミュレータやらターミナルって何ですか? 簡単に言うと端末画面をエミュレートするソフトのこと。 決められた数しか開けない実際の端末とは違って好きなだけウィンドウを開けるのも利点の1つ。(*1) 端末エミュレータ - Wikipedia 端末エミュレータ(ターミナル)には色んな種類があるので代表的な物をいくつか紹介します。 X Window System がインストールされているならば、どれか一つはインストールされていることでしょう。 定番 xterm (X Window System 付属) デスクトップ環境に付いてる奴 GNOME Terminal (GNOME 付属) Konsole (KDE 付属) Xfce4-Terminal(Xfce4付属) LXTerminal(LXDE付属) コンソールやターミナルの作業の記録を取りたい (script, tee) script コマンドを使います。 script コマンド 記録を開始 $ script 記録保存用ファイル 記録を終了 $ exit あるいは tee コマンドを使うと、特定のコマンドだけ出力を記録しておけます。 tee コマンド コマンドの出力を記録 $ コマンド #124; tee 記録保存用ファイル 標準入力、出力、およびエラーのリダイレクト方法 Log を残す ビープ音(ベル)を消したい。 ビープ音を鳴らなくさせたい (ITMedia) コンソールやターミナルのビープ音を消すには (@IT) 逆に beep というパッケージを入れるとビープ音をコマンドで任意に鳴らせる。 コマンドの基本 コマンドの打ち込み方が分かりません。 端末エミュレータ (ターミナル) というのを開いたあとで、コマンドをキーボード入力して Enter キーを押すと実行できる。 端末エミュレータやらターミナルって何ですか? コマンド入力例の$/%/#はコマンドを打ち込むユーザの権限のことなので打つ必要なし。#がついたコマンドは root ユーザー になったあとで実行すること。 コマンド入力例の $ や % とか # って何ですか? 先生!! CUI の基礎的な使い方すらわかりません! 以下のページで簡単に解説してあります。 初心者のためのシェル(Bash)入門 コマンドは一字一句全部入力しなければいけないのですか? Tabキーを押してコマンド補完を使ってみよう。Bash入門の コマンド補完機能を使おう 参照。 何をどうしていいのやら分からないレベル 質問したものの冷たく「 man (オンラインマニュアル) 読め 」と言われて途方にくれた場合どう生き残るか。 とりあえず、Red Hat Linux 入門ガイドの シェルプロンプトの基本 を読んでみよう。 ??をしたいんだけどどうすればいいのだろう? 日経 Linux に Linux コマンド逆引き大全 というすんごいページがあるので参考にしよう。左下の Linux の基礎というところから読めます。閲覧にはユーザー登録が必要なので登録するべし。(無料) どんなコマンドがあるんだろうか? 日経 Linux に Linux コマンド集 があるので参考にしよう。 ジャンル別になっているのでペラペラと読んでみると新たな発見があるかも。 このコマンド、どんなオプションがあるんだろうか? JM を読んでみましょう。JM はコマンドについているオンラインマニュアルを日本語に翻訳してくれているありがたいプロジェクトです。 たとえばファイルをコピーするコマンド "cp" を検索するとこんな風に表示してくれます。 また、JM では最新のバージョンのコマンドに翻訳が追い付いていない場合があるので、端末エミュレータで man コマンドを使えるようになっておくといいでしょう。 $ man コマンド名 man コマンドの使い方を表示する方法は以下の通り。 $ man man 英文のものを表示したい場合は以下のように環境変数 LANG を一時的に変更して実行します。 $ LANG=C man man man は UNIX 系 OS のほとんどで採用されている伝統的なマニュアルシステムですが、GNU 系のソフトウェアだと info というのを標準採用していたりもします。 $ info info man も info も表示されない場合は、コマンドに --help とつけて呼び出すとヘルプが表示されることも。 $ cat --help オンラインマニュアルを表示する (man) man ページにある番号の意味は何? $ man bash とすると BASH(1) と表示されます。この数字はセクションと呼ばれるものです。 数字の詳細については JM Project のセクションとは?参照のこと。 例えば mount コマンドに関するマニュアルは 2 と 8 の異なるセクションのマニュアルが用意されています。 $ man 2 mount $ man 8 mount 上記のようにセクションを指定すると見ることができます。 manページの「関連事項」にあるsyslogd(8)などの数字は何? (@IT) コマンド補完を使おう。 コマンド補完を使うと正確に、そして早く入力ができるようになります。 詳細は初心者のためのシェル(bash)入門を参照のこと。 コマンドを実行しようとすると command not found と言われます。 ターミナルでコマンドを実行しようと hoge と入力しても、bash hoge command not found などと言われてしまう場合。 原因は以下の2通りが考えられます。 1. コマンドがそもそも存在しない。 この場合、そのコマンドの実行ファイルをインストールすれば使えるようになるはず。 2. コマンドは存在しても、PATH に含まれるディレクトリ以外の場所にある。 コマンドの実行ファイルが存在していても、環境変数 PATH の一覧に含まれてるディレクトリにないと見つけられない。 PATH の設定を確認するには echo $PATH と実行する。もし、実行ファイルがこれ以外の場所にあれば /home/huga/hoge とフルパスで打てば実行できる。(*2) /sbin や /usr/sbin にある管理用のコマンドの場合は、root でない一般ユーザの PATH には含まれないので、一般ユーザはフルパスで打たない限り実行できない。 su で一般ユーザから root に切り替る際は、 su - とハイフンをつけずに su と実行すると、一般ユーザの環境設定がそのまま使われてしまうので注意すること。(参考) なお、現在のディレクトリに hoge という実行ファイルがあったとして、それを実行したいときは ./hoge と打ち込む。("." は現在のディレクトリの意)(*3) /usr/local/hoge1 とか /usr/local/hoge2 とかに実行ファイルを入れている場合、全てを PATH に追加するのが面倒なら /usr/local/bin などにシンボリックリンクを張る手が使えます。 Tips フロッピーや CD-R に収まらないファイルを分割、結合したい。(split, cat) 分割は split コマンド、結合は cat コマンドが簡単です。 split -b 分割サイズ 分割するファイル 分割後のファイル先頭につける文字列 hoge.tar.gzを1440KBの「hoge_splited」で始まるファイルに分割してみる: $ split -b 1440k hoge.tar.gz hoge_splited. $ ls hoge.tar.gz hoge_splited.aa hoge_splited.ab hoge_splited.ac cat 結合したいファイル 結合後のファイル $ cat huga_splited.aa huga_splited.ab huga.tar.gz あるいは * を用いて $ cat huga_splited.* huga.tar.gz 分割/結合 コマンド split (分割) $ split -b 分割サイズ 分割するファイル 分割後のPREFIX cat (結合) $ cat 結合するファイルのPREFIX .* 結合後のファイル名 分割サイズのデフォルト単位はバイトだけど、サイズの後に k や m をつければKB(=1024B)やMB(=1024KB)になります。 5Mバイトのファイルを1Mバイトずつに分割させたい (ITMedia) splitで分割をしたファイルを復元させたい (ITMedia) テキストファイルの中の文字列を検索したいんですが grep コマンドを使うと、指定した文字列を含む行を画面に表示します。ディレクトリ内のファイル全てから検索する場合は -r オプションをつけます。 grep コマンド ファイルから検索 $ grep 検索する文字列 ファイル ディレクトリから検索 $ grep -r 検索する文字列 ディレクトリ ディレクトリから検索するときは「ファイル名 一致する行」のように表示されます。 grepの簡単な使い方 テキストファイルの中の文字列を別の文字列に置換したいんですが sed コマンドを使うと、ファイルの中の特定の文字列を別の文字列に置換して画面に表示します。 sed コマンド 置換 $ sed -e "s/置換したい文字列/置換後の文字列/g" ファイル -e オプションを複数指定すると複数置換します。出力を表示せずにファイルに保存したい場合はリダイレクトします。 コマンド表示結果の2番目や3番目の部分だけ抜き出したいんですが (awk) awk コマンドを使うと、空白などで区切られた表示結果の2列目や3列目の部分だけを抜き出して画面に表示します。 例えば コマンド | awk {print $2} と入力すると、コマンドの出力のすべての行のうち、何か(デフォルトは空白)で区切られている 2 番目(=$2)だけを抜き出して表示します。 AWKの第一歩 ファイル名の文字コードを一括変換したい SMBCHARTOOL が便利です。 日本Sambaユーザ会 - SMBCHARTOOL SMBCHARTOOLは、Sambaのコンパニオンツールで、Samba サーバ上の日本語ファイル名の文字コードを一括変換することで、Sambaサーバを運用する管理者を支援するツールです。現在は euc, hex, jis, cap, sjis の各文字コードに対応しています。また、変換だけでなく旧バージョンにおける文字化けに対しても、修復します。 convmv ってのも。 convmv - converts filenames from one encoding to another ファイルやディレクトリの違い(差分)を調べたい (diff) diff コマンドで差分を調べられます。二つのディレクトリにあるファイルの差分を調べたい時は -r オプションをつけます。 diff コマンド 2つのファイルの差分を調べる $ diff ファイル1 ファイル2 2つのディレクトリの差分を調べる $ diff -r ディレクトリ1 ディレクトリ2 設定ファイルを書き換えたい 各種テキストエディタ を使用します。 Unix 系 OS では vi系エディタを使うのが伝統ですが、初心者には難しいかもしれません。Linux では nano が簡単です。 GUI のテキストエディタもありますが、X サーバが立ち上がらなくなってしまった時にも困らないよう、 CUI のテキストエディタに慣れておいた方がよいでしょう。 システムのタイムゾーンを変更したい。 タイムゾーンを変更するには、root になって以下のコマンドを実行します。 タイムゾーン変更 コマンド Red Hat 系 # /usr/sbin/timeconfig Debian 系 # /usr/sbin/tzconfig 知らない間にcoreという名前のファイルができてしまった 知らない間にcoreという名前のファイルができてしまった(@IT) load average はどうやって調べるんですか? (top, uptime, xload) ロードアベレージを調べるには top , uptime , xload などを使います。 システム情報の収集 X Window SystemでCPUの負荷を調べるには (@IT) 異様にメモリを食っているようなのですが、問題ないでしょうか? たいていの場合、使っていない実メモリをキャッシュとして有効活用しているだけなので、問題はありません。 free コマンドを実行してメモリの使用状況を確認してください。 $ free total used free shared buffers cached Mem 256568 251608 4960 0 16992 99836 -/+ buffers/cache 134780 121788 Swap 196520 29488 167032 出力の2行目 (Mem の行) を見ると、free の欄が 4960 となっていて total に比べてかなり小さく、メモリ使用率がかなり高くなっているように見えます。 が、キャッシュとして使用している分を除いた値 (3行目の free の欄) を見ると121788 なので、半分近く空いています。この場合はそれほど問題ではありません。メモリが必要になるとキャッシュ部分がクリアされて、使用できるようになります。 Linux のメモリー管理(メモリ−が足りない?,メモリーリークの検出/防止) Linux(っていうか UNIX かな?) では, 各プロセスにメモリを割り振った残りをバッファ(buffer)とキャッシュ(cache)に利用して, ディスク入出力の負荷を減らしている. そのため, free コマンド等で見える残りメモリ−(free)は 1M 程度の瞬間的な使いまわしに対処する程度しか残っていない事が多い.この例では, 実質的な残りメモリ−は, バッファとキャッシュに転用された分も考慮すると free+buffers+cached で計算できる. 上の例で云うと free+buffers+cached = 1628+20112+126848 = 148588. まだまだ, メモリ−には余裕がある. 知っているとちょっと便利なコマンド ファイルの中身を観覧 less ファイルの内容の閲覧。 $ less [ファイル名] スペースキーで進む、bキーで戻る、qキーで終了。似たようなのに more (次に進むだけで、元に戻れない) とか lv (国際化版) とかもある。 システム情報の表示 uname システム (OS 名など) の情報を表示。 $ uname すべての情報を表示させるには、 -a オプションを使用。 $ uname -a 現在時刻を表示 date 現在時刻を表示。 $ date カレンダーを表示 cal カレンダーを表示。 $ cal 数ヵ月分まとめて表示させるには、 -* オプションを使用。 Linux カーネル 2.6 についての話題や注意点など。 参考 URL ここより Linux Kernel 2.6 関連 の方が情報が多いです。 Linuxカーネル2.5 最新開発動向 (@IT) 全貌を現したLinuxカーネル 2.6 (@IT) 第1章 エンタープライズ向けに刷新されたカーネル・コア 第2章 サポート・アーキテクチャ/デバイスの拡充 第3章 ファイルシステム/ボリューム管理機能の進化 第4章 IPv6、UML、セキュリティ機能の統合 Linux カーネル、デバイスドライバについて詳しく知りたい。 解説 リンク 高橋浩和氏によるカーネルコード解析文書 http //sourceforge.jp/projects/linux-kernel-docs/wiki/internal22-index (2.2) http //sourceforge.jp/projects/linux-kernel-docs/wiki/internal24-index (2.4) http //sourceforge.jp/projects/linux-kernel-docs/wiki/%E7%9B%AE%E6%AC%A1 (2.6) Linuxデバイスドライバ開発のヒント http //www.devdrv.co.jp/linux/ Linux Head Quarters http //www.linuxhq.com/ Kernel Newbies http //kernelnewbies.org/ Kernel Trap http //kerneltrap.org/ @IT Linux Square カーネル関連記事 http //www.atmarkit.co.jp/flinux/index/indexfiles/index-linux.html#kernel Linux カーネル付属文書の翻訳はどこかにない? 解説 リンク JF Index of Linux Kernel 2.2 Documentation http //linuxjf.sourceforge.jp/JFdocs/kernel-docs-2.2/ JF Index of Linux Kernel 2.4 Documentation http //linuxjf.sourceforge.jp/JFdocs/kernel-docs-2.4/ JF Index of Linux Kernel 2.6 Documentation http //linuxjf.sourceforge.jp/JFdocs/kernel-docs-2.6/ JF Configure.help Japanese translations. http //linuxjf.sourceforge.jp/JFdocs/Configure.help/ カーネル 2.6 にアップグレードしてみたところ、X上でターミナルが立ち上がらなくなりました。 Unable to open a suitable terminal device.とエラーメッセージが出る。 カーネルコンフィグで File Systems Pseudo filesystems [*] /dev/pts これで解決。 NPTL を採用したカーネルを使うとあるソフトが動かなくなってしまいました NPTL は古い Linux Threads 実装とバイナリで互換性があるようになっていますが、古い Linux Threads の実装で POSIX 標準以外の実装の部分を使用しているソフトウェアの場合、NPTL の環境では修正が必要になります。 NPTL でソフトがうまく動作しない場合は環境変数 LD_ASSUME_KERNEL を設定すると古い Linux Threads を使えます。 古い Linux Threads を使う 設定値 フローティングスタックあり 2.4.1 フローティングスタックなし 2.2.5 今のところ上記二種類の設定があるようです。 hoge というプログラムを使うときに設定したい場合は以下のようにすれば一時的に環境変数を設定して実行する事ができます。(bash の例) LD_ASSUME_KERNEL=2.2.5 hoge カーネルの仕組み コンテキスト切り替え カーネルはとても小さな時間で次々とプロセスを切り替えることで プログラムの並列実行を可能としている。 具体的には、レジスタの内容をtask_structという構造体に退避し、 プロセスを安全に停止し、切り替えながら再実行する。 プロセスには、タイムスライスと呼ばれる「とても小さな時間」が与えられ、 Linuxカーネルはスケジューラによってこれを次々に切り替える。 これをコンテキスト切り替えと呼ぶ。 主なスケジューリングアルゴリズムに、ラウンドロビン、協調的スケジューラ、多段フィードバックキューなどがある。Linux 2.6.23以降ではCFSという新しいスケジューラが使われている。 プロセスには、「実行中」「実行可能」「待ち状態」の3つの状態があり、それぞれに切り替わる。待ち状態とは、たとえばfind . | grep hogeでfindの実行終了を待っているgrepのような状態。この間grepの実行はブロックされる。 仮想アドレス空間とページ カーネルは、実行するプロセスに、テキスト領域(プログラムが格納される)、スタック領域、ヒープ領域などを与える。 カーネルはプログラムがメモリ領域にアクセスした段階で、 論理アドレスを物理アドレスに翻訳する。 これを仮想アドレス空間と呼ぶ。 ハードウェアのMMUという機構を使ってこれを実現している。 このようにすることで、CPUとメモリの組がひとつしかなくても、 プログラムの数だけあるかのように仮想化することができる。 カーネルは三段階のメモリアドレッシングを行う。 すなわち、ページグローバルディレクトリ、ページミドルディレクトリ、ページテーブルである。 もともとは二段階だったが、64bit化された結果二段階では不十分ということになり、 Alphaプロセッサを参考に三段階のアドレッシングがされるようになった。 カーネルは、ページングやセグメンテーションによってメモリ空間を小さく分割して管理している。 C言語のプログラムをコンパイルすると、ネイティブに実行できるバイナリファイルが出来るが、 このプログラムを実行すると、カーネルがこのプロセスがきちんと動くようにメモリ領域を割り当てて管理する。 カーネルは、できるだけ連続したメモリ領域を確保し、空き領域の断片化が起きないように、ページの置換のために頻繁に使用されていない空き領域を選ぶページ置換アルゴリズムや、2を基底する数で管理するバディシステムのような仕組みを使って努力している。 メモリを動的に確保するにはmalloc(), realloc(), calloc()などのAPIを使う。またbrk()やsbrk()も使うが、malloc()系列のAPIとbrk()系列のAPIを同時に使うことはできない。これはmalloc()がbrk()などとともに使われないことを前提として実装されているため。 malloc()した領域は必ずfree()してプログラムの中で解放しなければならない。C言語ではJavaのようなガーベッジコレクションの仕組みがないため、解放しなければメモリリークが起きる。 C++ではnewとdeleteを使ってオブジェクト指向のオブジェクトをmalloc()やfree()と同様に動的スコープで管理できる。この際には構造体のポインタと同じように.の代わりに- を用い、型宣言に*をつける。また、C++でもスマートポインタを用いれば、Javaと同じように自動的に解放されるメモリ領域を管理できる。 また、メモリではないが、プログラムを書く時はエラーチェックをきちんとすること。malloc()のエラーチェックをしなかった場合、システムに存在するメモリが使い果たされた時などの対応ができない。C言語には例外の仕組みがないため、エラーチェックは返り値を条件式で比較してチェックする。 割り込み カーネルは、IOデバイスの応答を待機している間、別の仕事をする。 IOデバイスが処理を完了して応答した時点で、 デバイスがカーネルに割り込み、処理を継続する。 割り込みとは、このようにカーネルの処理に対してさまざまな場面で割り込んでくる処理のことで、 場合によって例外と呼ばれることもある。 ソフトウェア割り込みとかハードウェア割り込みと区別されることもある。 プロセスとスレッド プロセスは、それぞれに独立したメモリ領域を用意する。 これに対して、スレッドはプロセスの中に軽量な並列処理を実行し、 メモリ領域を共有する。 スレッドにおいては、競り合い状態が発生しないように、 変数を排他制御(ロック)する必要がある。 プロセスにおいても、プロセス間通信の仕組みを使うことで、 異なるプロセスでデータを共有できる。 セマフォを使うことで、排他制御ができる。 セマフォは、同時に使える人数のうち、あとどれくらいの人数が使えるかを示す整数値を提供する。 プロセス関連のシステムコール・APIとして、fork(), exec(), wait(), exit()などがある。forkをするとその時点からプログラムが二つに分岐する。execをすると自分のプロセスを上書きしてそのプログラムを実行する。特にサーバーなどでは面倒くさくてもforkしよう。 デーモンを作る場合、fork()した上でsetsid()で制御端末を切り離せばよい。 デバイスドライバ デバイスドライバは、カーネルの中で唯一デバイスコントローラの詳細な仕様を知っている部分。 キャラクタ型デバイスとブロック型デバイスがある。 キャラクタ型デバイスは、ランダムアクセス(好きな時に好きな場所にアクセス)することができない。 ブロック型デバイスは、ランダムアクセスができる。多くの場合、ハードウェアなどのストレージはブロック型デバイスであり、マウントして利用する。 ファイルシステム カーネルはVFSという機構を使うことで、ファイルシステムが違ってもプログラムを修正する必要はなく、 同じシステムコールからアクセスできる。 ext2やext4はブロック型ファイルシステムで、ブロックでデータを管理し、i-nodeと呼ばれるインデックスからブロック内のデータにアクセスする。 カーネルは、低速なディスクに頻繁にアクセスしないように、ストレージの内容を内部でキャッシュしている。ファイルの書き込みはまずキャッシュに書かれてからその後にディスクに書かれる。なんらかの理由でキャッシュからディスクに書きたいならsyncコマンドを実行する。 i-nodeはデータへとアクセスするためのインデックスのことで、「未使用」「使用中」「ダーティ」に分けられる。ダーティとは「書き込み中」の意味。ダーティフラグがつけられると、カーネルはそれをダーティリストに加えて、I/Oリクエストキューに加え、順次それが書き込まれる。 ext2などのブロック型ファイルシステムは、ブロックの集合であるブロックグループの集合としてデータを保管し、メタデータをスーパーブロックに格納する。 これに対してReiserFSやXFSはデータベースで用いられるB-Treeと呼ばれるインデックスを用いる。 BtrFSのようなコピーオンライトのファイルシステムでは、ファイルはコピーだけされても実際のデータは複製されず、読み取り専用となっている元のファイルの部分を参照する。実際にこのデータに書かれた時にその部分だけが複製される(コピーオンライト)。 このためBtrFSではファイル容量が大幅に削減できるため、過去のその時読まれたデータを残しておくスナップショットの機能を持たせても構わないぐらいの現実的な余裕がある。そのため、障害復旧に優れている。 ネットワーク カーネルはBSDソケットインターフェースを提供する。 これは互いに関連づけられると有効になり、片方から書き込むと片方から読み込める。 TCPでは再送制御など信頼性確保のための多くの機能があるが、UDPは機能がない代わり、ビデオや音声などを多少誤りがあっても高速に通信できる。 APIは、socket(), bind(), listen(), accept(), connect()となる。サーバ側で待ち受けて待機しているソケットに、クライアントが接続することで、ソケットの連携が可能となる。 カーネル内部では、BSDソケット層とINETソケット層がある。OSI参照モデルでは、ヘッダを付加して上層から下層へとデータを送り、ヘッダを除去して下層から上層へとデータを受け取る。Linuxでは、ソケットバッファsk_buffのポインタをOSI参照モデルの各層に渡していくことでこれを実現している。 シグナル シグナルはプログラムを強制終了するのに使う。 デフォルトの動作は強制終了やコアダンプなどに限られているが、プロセスの側でシグナルを捕捉(トラップ)し、別の動作をさせることができる。 シグナルはシステムコールsignal()で捕捉できるが、古いので新しいプログラムではsigaction()を使う。 システムコールと入出力 システムコールは、基本的にopen(), close(), write(), read()で行う。 しかしながら、バッファリングを行うstdioのライブラリ関数を使った方が高速。この場合、fopen(), fclose(), fwrite(), fread()などが使えるほか、ほかにもたくさんのAPI関数がある。 システムコールは固定長の読み書きしかできないが、stdioは文字単位や行単位で入出力でき、フォーマット出力などの便利な機能がある。一文字だけ出力するにはputchar()、一文字だけ入力するにはgetchar()を使う。この二つの関数だけでもいろんなプログラムが書ける。 システムコールを使う場合、ファイルディスクリプタと呼ばれる整数値をストリームの識別に用いる。プロセスには、標準入力、標準出力、標準エラー出力のファイルディスクリプタが与えられるが、ファイルやソケットをオープンした場合にもファイルディスクリプタが与えられ、これに対してread()やwrite()することでストリームの読み書きが可能となる。 stdioでは、ファイルディスクリプタをFILEポインタというラッパーに格納する。FILEポインタにはバッファリングの情報や、ファイルのどの位置を今読んでいるかの情報などが格納されている。 単に入出力をするだけなら、fgets()やfputs()、あるいはprintf()などを使う。ファイルに書き込む時はfprintf()を、出力せずに文字列をフォーマットだけしたい場合はsprintf()を使う。また、テキスト処理をする場合、トークン解析などの理由で一文字だけ元に戻したいことがある。この時はungetc()を使う。 カーネルモジュールのロード insmodで、カレントディレクトリにあるカーネルモジュールをロードできる。 insmod hello.ko ロードされたモジュールはlsmodで確認できる。 モジュールをアンロードするにはrmmodを行う。 rmmod hello また、「/lib/modules/`uname -r`」からドライバをロードするにはmodprobeコマンドを使う。 カーネルモジュールのロードの設定は、/etc/modules-load.d/*.confに記述する。オプションは、/etc/modprobe.d/*.confに記述する。 共有ライブラリ バイナリの依存している共有ライブラリの情報を見たい lddコマンドでいける。 ldd /bin/ls lddコマンドは、バイナリが依存する共有ライブラリを表示するコマンド。これに対してldconfigは共有ライブラリのキャッシュを更新するコマンド。共有ライブラリの設定を変えた時はldconfigを実行する。 静的リンクのライブラリは、ビルド時にプログラムに物理的に結合される。動的リンクでは、別々のオブジェクトが作られ、実行時に動的リンクローダが結合する。基本的に、動的リンクを用いるのが一般的。 システムコールをトレースしたい straceコマンドでいける。 gccとmake gccの主なコマンド 基本は、 gcc -o test test.c 主なオプションは、 -g デバッグ情報を付加 -lm libmをリンク -O0 最適化を無効化 -O2 デフォルトの最適化 -O3 より強固な最適化 -E プリプロセスまでを実行 -S アセンブリ言語までを出力 -c オブジェクトファイルまでを出力 -Wall 警告オプションをすべて有効 -g3 デバッグ情報の付加に加え、gdbでマクロも有効になる -L ライブラリを参照する場所を指定 -I インクルードヘッダを参照する場所を指定 コンパイラは、字句解析と構文解析からパースツリー(トークンを葉とする構文の構造を表した木構造)を作り、最適化してアセンブリ言語コードを出力する。中間言語表現として3番地コード(3つの番地だけのコードに直す)が知られる。字句・構文解析にはyaccとlexを用いる場合が多い。新しい言語を作りたいのなら、RustのようにLLVMのバックエンドを用いてもいいだろう。 make Makefileは 作成されるファイル 依存ファイル 作成方法 と書く。 たとえば、 test main.o test1.o test2.o gcc -o test main.o test1.o test2.o main.o main.c gcc -c main.c test1.o test1.c gcc -c test1.c test2.o test2.c gcc -c test2.c とすれば、main.cが変更されると以下だけを実行する。 gcc -c main.c gcc -o test main.o test1.o test2.o
https://w.atwiki.jp/linux2ch/pages/113.html
Kaffeine FAQ Kaffeine FAQ 「Kaffeine」とは何ですか Mandriva Linux XXXのムービーが再生できません 「Kaffeine」とは何ですか xine-lib を使用し、KDE のフロントエンドを持ったメディアプレイヤーです。音楽、動画の再生ができます。 公式サイト http //kaffeine.sourceforge.net/ Mandriva Linux XXXのムービーが再生できません ライセンスの問題をはらんだパッケージは、公式サイトからは配布されていません。plf パッケージを使って Codec などのインストールが必要です。 URPMI リポジトリに plf サイトを登録する。 urpmi を使って xine-win32, win32-codecs をインストール。 Binary Codecs for MPlayer(xine-lib を使った別のメディアプレイヤー)で取得した Codec を /usr/lib/win32 ディレクトリにコピーする。 上記の方法で、quicktime,realplayer,window media video 7/8/9 が再生できるようになります。
https://w.atwiki.jp/linux2ch/pages/109.html
Xine FAQ Xine FAQ Xineの概要 簡単にインストールする方法はありませんか。 Xine を Source から install する方法 メディアを挿入したらすぐ再生を開始するようにしたい。 The source can't be read … とエラーが出て、DVD を再生できません。 DVD レコーダーで録画したTV番組が再生できません。 (DVD-RAM) DVD レコーダーで録画したTV番組が再生できません。- その2 (DVD-R/RW/+R) オーディオドライバ or ビデオドライバ の切り替え 初期設定に戻したい。 Xineの概要 Xine(くしーん)は PC-UNIX で広く使われているマルチメディアプレーヤーです。Xine のコアエンジン(xine-lib)は多くの Linux ディトリビューションに標準採用されています。Xine のフロントエンドは、xlib ベースの xine-ui や、GNOME 標準の Totem、KDE3 標準の Kaffeineなどがあります。 簡単にインストールする方法はありませんか。 Xine プロジェクトでは、Xine のバイナリーパッケージの公式な配布は行なっていません。 バイナリーパッケージを入手したい方は、サードパーティのリポジトリーを追加し APT/YUM で導入すれば比較的簡単にインストールできます。 ディストリビューション コマンド Fedora/ RHEL / CentOS # yum install xine Mandriva Linux # urpmi xine-ui Debian GNU/Linux # aptitude install totem Xine を Source から install する方法 Xine を Source から install する方法 メディアを挿入したらすぐ再生を開始するようにしたい。 GNOME 2.2 デスクトップ環境では、[パネル・メニュー] [個人設定] [CD Properties] で設定変更できます。希望するメディアにチェックを入れ、必要に応じてコマンドを変更します。たとえば DVD の場合 Red Hat Linux 9 や White Box Linux 3.0 では、vlc dvd %d がデフォルトの値とされているので、これを次に変更します。 xine dvd %d これで、次回よりメディア挿入後に自動再生されるようになります。 なお、 GNOME 2.8 の場合の設定変更は、[パネル・メニュー] [アプリケーション] [個人設定] [リムーバル・ストレージ] [いろいろなドライブとメディアの設定]タブより行なってください。GNOME 2.8 でも同様、デフォルト値 totem %d を上記のコマンドへ変更してください。 The source can t be read … とエラーが出て、DVD を再生できません。 Xine のバージョンによっては、"There is no input plugin available...file/stream source doesn t exit" などと開始時にエラーメッセージがでます。DVD-ROM ドライブが CD-ROM ドライブと兼ねている場合、シンボリックリンクを張る必要があります。rootになり ln -s /dev/cdrom /dev/dvd と実行して /dev/dvd を作成します。 シンボリックリンクを作成する替わりに、Xine の設定項目の input タブより /dev/dvd を /dev/cdrom に書き換えることが可能です。この方法では対処できないときは、上例のようにリンクを張ってみてください。 (参考 1) DVDドライブが /dev/hdc であるときは、ln -s /dev/hdc /dev/dvd のようにシンボリックリンクを張ります。 (参考 2) 上記項目の「メディアを挿入したらすぐ再生を開始するようにしたい。」に従って既に設定変更を済ませてある場合は、GNOME デスクトップ上から操作を行うのにわざわざシンボリックリンクまで張る必要はありません。 DVD レコーダーで録画したTV番組が再生できません。 (DVD-RAM) DVD-RAM 対応のコンボドライブでは、録画済みの DVD-RAM ディスクをドライブに挿入しても、すぐ再生できないことがあるかもしれません。 この場合には、DVD-RAM に記録されている DVD_RTDV ディレクトリー以下にある VR_MOVIE.VRO ファイルを開きます。選択したファイルを右クリックして、そのメニューの中に「Xine で開く」という項目が表示されたら、これを選択して再生するようにします。 ※ これは、Panasonic DMR-EH60 + BUFFALO CRWD-48FB で動作確認したものです。 DVD レコーダーで録画したTV番組が再生できません。- その2 (DVD-R/RW/+R) 他の DVD レコーダーで録画したディスクの種類が DVD-R、DVD-RW、 DVD+R の場合には、その機器でファイナライズ(終了処理)を行なわないと、パソコンの DVDドライブで再生することができません。 Xine を起動させてそのメニューボタンから DVD を選択すると、収録されたリストが表示されます。再生したい番組は、そのリストの中から選びます。 ※注意 DVD_VIDEO_RECORDER というディレクトリー以下に VIDEO_TS というフォルダが作成された場合、その中の vts_xxx.vob ファイルを実行して再生することができないことがあるかもしれません。 オーディオドライバ or ビデオドライバ の切り替え xine-ui の画面を右クリックし、Settings→Setup→GUI のタブから Configulation experience level を「Expert」に設定すると、audioタブの audio driver to use でオーディオドライバを選択、videoタブの video driver to use でビデオドライバを選択できます。両方ともデフォルトはautoになっています。 初期設定に戻したい。 設定ファイルは、ユーザの ~/.xine ディレクトリに保存されます。もし削除して初期状態に戻したい場合には、$ rm -fR ~/.xine としてください。
https://w.atwiki.jp/hyosida/pages/30.html
Compaq 6710bはCore2 Duo、メモリ2GB、HDDは80MB 最初ubuntuのUSBメモリを差したがなにやらtimeoutのエラーを出して立ち上がらない。Xubuntuもメニュー画面は出るが立ち上がらない。ところがpuppy linuxやlinux Beanは起動する。 USBメモリが悪いのかと思いubuntuのDVDから起動したところエラーを多発しながらも時間をかけて最後結局立ち上がった。 Xubuntuのインストール 思い直してXubuntuのUSBメモリで起動した。我慢強く待つと結局5分ほどかけてインストーラが起動できた。ただし、画面は真っ暗。 面倒なのでこのままインストールに突入した。HDDは本体内蔵のものをデフォルトで指定した。 インストールは順調に終わり再起動する。HDDから起動してもやっぱり遅い。5分くらいかかる。そして、起動後の画面は真っ暗。ただ暗い画面はFN+F10で明るくなった。いったんここで明るくすると次回起動後も暗くならない(本当かな。きちんとと確認していない)。 起動が遅い理由は不明だが↓を参考に次の変更をしたら劇的に早くなった。 http //mytech-manoj.blogspot.com/2018/06/ubuntu-1804-on-old-hp-compaq-6710b.html sudo nano /etc/default/grub Added GRUB_CMDLINE_LINUX_DEFAULT="quiet video=SVIDEO-1 d" and removed "splash" saved and sudo update-grub Zorin OS Lite 苦労してXubuntuを動かすようにしたが、あっさり別のOSをインストールした。Zorin OSはやっぱりubuntuベースでインストール方法は同じ。ただ、Xubuntuのように起動に待たされることはなかった。インストール後日本語入力もすぐにできた。軽いし扱いやすい、というのが第一印象。 無線LANもXubuntuでは認識しない出処不明のUSBドングル(中身はRealtekのRTL8188FTV)も何事もなかったように認識して使えた。拍子抜けの感じ。このドングルは別のPCのPuppy Linuxではどうしても認識できなかった。→後から分かったことだが、このUSBドングルはHPのデスクトップPCでは認識しないが、ノートPCではキチンと認識される。XubuntuでもPuppyでも。 あとは、ネットワークのNASに接続してSHIFT-JISで書かれたテキストファイルをエディタで開くとXubuntuもPuppyも文字化けしてどうにも読めなかったが、Zorinは何事もなかったように普通に表示される。→これも後からわかったことだが、OSのセイというよりかは、エディタのせいであるようである。geditはShift-JISを認識するが、mousepadはだめ。leafpadはわからない。Xubuntuのデフォルトのエディタはmousepad、puppyはGeanyと言うものだが、geditも用意されている。 どこが違うのかよくわからないが、日本語に対する対応はubuntuは派生品の中では一番良い感触
https://w.atwiki.jp/kamurikilinux/pages/17.html
Professional版って? ※これはまだ構想段階です。早まらないでね。 様々な機能を追加した豪華なKamuriki Linux。BOOTH様及び直販にて1000~2000円で販売予定です。 即売会への出展予定 現時点ではないが、今後、コミックマーケットやコミティアなど各種同人誌即売会や通販サービス「BOOTH」などで販売を開始予定。 前者はUSBかDVD、後者はISOイメージを販売。 特徴 商用パッケージの付属(ライセンスや各種法令との兼ね合いからOSには付属せず、インストール後の初回起動時に導入)。 外観はクラシックの他XP、Vista風にもできる。 様々な色のGTKやLXQtテーマを同梱。 事務作業やメディア編集など、様々な環境に対応できるように様々なソフトウェアを搭載。出版、動画・音声編集、図面作成… 20種類以上のゲームが付属。 サポート 購入後30日間のインストールサポートが付属。
https://w.atwiki.jp/kamurikilinux/pages/18.html
NakoはAURヘルパーとして開発を継続しています。このページは一応残してあります。最新情報はhttps //w.atwiki.jp/univalent-ja/pages/65.htmlをご確認下さい。 NakoはPacman風ラッパーとパッケージ作成自動化スクリプトから成るプロジェクトであった。APTやdpkgと密接に連携する構想であったが、現在はArch Linux向けにAURヘルパーとして開発が行なわれている。 予定されていた機能 Pacman風のコマンドでAPTやdpkgを操作 パッケージ作成の自動化ソースコードの取得 ビルド時の依存関係の自動解決(「apt build-dep」の代替) パッケージの作成 操作方法 nako Pacman→APT/dpkgのラッパースクリプト。 現在構想中。 makepkg パッケージ作成用スクリプト。必ず「package.conf」と「package.sh」のあるディレクトリで実行する事。 -s - 依存関係の自動インストール -i - 作成したパッケージをインストール -c - ビルド環境のクリーニング
https://w.atwiki.jp/linux2ch/pages/236.html
TVチューナーカードについてのFAQ TVチューナーカードについてのFAQ TVキャプチャカード(TVチューナーカード)を使いたい ハードウェア・エンコードとソフトウェア・エンコードの違いを知りたい ハードウェア・エンコードの特徴 ソフトウェア・エンコードの特徴 購入の際の注意 Linux対応の地上デジタルチューナーはありますか Friio アースソフトPT1、PT2 KEIAN KTV-FSUSB2/FSPCIE S870 UOT-100(ワンセグチューナー) 動作確認表 iTVC15/16系キャプチャカードの場合 ITVC16-STVLP CX23416GYC-STVLP、PC-MV51XR/PCI GV-MVP/RX、RX2、RX2W TRANSGEAR 5000TV、DCT-MTVP1、M175-B PC-MV5L/PCI SAA7130/7133/7134系カードの場合 SAA7133GYC-STVLP SAA7133-STVPCI TV/キャプチャカードを使えるようにする手順 手順1:カードの取り付け 手順2:モジュールのロード モジュールの読み込み状況を確認 (dmesg) 参考 dmesg からカードの情報を調べる 参考 カードリストファイルからチューナーの対応状況を調べる (CARDLIST.tuner) OS 起動時に自動的にロードするように設定したい (SAA7130-STVLP での例) 映像や音声が出ない 付属コードの接続を確認 ボリュームコントロールの設定を行っていない。 モジュールの再読み込み TV 視聴用ソフトの設定 アンテナ入力信号が極端に弱いとき 視聴ソフトなど TV の視聴をするのに他に必要なソフトについて知りたい TV の予約録画や番組のキャプチャをするのに必要なソフトを知りたい 2ch Linux板スレッド TVキャプチャカード(TVチューナーカード)を使いたい ハードウェア・エンコードとソフトウェア・エンコードの違いを知りたい ハードウェア・エンコードの特徴 録画時にマシンパワーをあまり食わない 視聴に0.5-2秒程度の遅延が発生する(一部カードは遅延無し) 圧縮形式はMpeg2かDivX(ビットレートは変更可) 価格が一般に高い。 ソフトウェア・エンコードの特徴 エンコードの際にマシンパワーを食う 視聴の際に遅延が発生しない 安価である 購入の際の注意 この分野の製品は新製品への移行が激しく、ドライバーが十分対応するまでに旧製品となってしまうおそれもあります。 対応カードについては、カード名をキーワードにして Google 検索を試してください。 Linux対応の地上デジタルチューナーはありますか Friio 「Friio(フリーオ)」対応ソフトウェアの開発が、2ちゃんねるFriioスレッドの有志により進められています。Friioの仕組みについての簡単な解説は 「衝撃のコピーフリー受信機「フリーオ」、その仕組みをひもとく」(itpro.nikkeibp.co.jp) にあります。インストールについては以下を参考にしてください。 Linux用Friioソフトウェアが登場! - 動作検証を公開(journal.mycom.co.jp) アースソフトPT1、PT2 対応ドライバが http //sourceforge.jp/projects/pt1dvr/ で開発されています。 PT1 driver http //hg.honeyplanet.jp/pt1/ v4l-dvb (pt1 driver dvb) http //www.linuxtv.org/hg/v4l-dvb 開発者が自ら語る,「あのPT1」Linuxドライバ作成秘話(itpro.nikkeibp.co.jp) KEIAN KTV-FSUSB2/FSPCIE KTV-FSUSB2:PC生活めも http //aqua-linux.blog.so-net.ne.jp/archive/c2301480999-1 Ubuntu 11.10 の場合、Ubuntu 11.10(Oneiric) recfsusb2nのコンパイル(PC生活めも) に recfsusb2n 0.9.2 のインストール手順があります。 Ubuntu 12.04 の場合は こちら でパッチが提供されています。このパッチで boost1.48 でも boost1.46 と同じくコンパイルが通りました。 S870 ブラジル地デジ向けUSBチューナーS870を使ってUbuntu上で地デジ視聴 速報版 http //blog.osakana.net/archives/2466 UOT-100(ワンセグチューナー) ワンセグを24時間録画して「タイムマシン・テレビ」を作ってみよう http //mobilehackerz.jp/contents/OneSeg24 動作確認表 Linuxで地デジまとめ -地デジカ vs tux- http //rokugadelinux.wiki.fc2.com/ iTVC15/16系キャプチャカードの場合 iTVC15(CX24315)、iTVC16(CX24316)系チップを搭載している場合、IVTV というドライバがあります。 カード名のリストは、の CARDLIST.ivtv にあります。 下記は Fedora 8 の場合に表示された一部です。yum install kernel-doc でインストールできます。 1 - Hauppauge WinTV PVR-250 2 - Hauppauge WinTV PVR-350 3 - Hauppauge WinTV PVR-150 or PVR-500 4 - AVerMedia M179 [1461 a3ce,1461 a3cf] 5 - Yuan MPG600/Kuroutoshikou iTVC16-STVLP [12ab fff3,12ab ffff] 6 - Yuan MPG160/Kuroutoshikou iTVC15-STVLP [12ab 0000,10fc 40a0] 7 - Yuan PG600/DiamondMM PVR-550 [ff92 0070,ffab 0600] 8 - Adaptec AVC-2410 [9005 0093] 9 - Adaptec AVC-2010 [9005 0092] 10 - NAGASE TRANSGEAR 5000TV [1461 bfff] 11 - AOpen VA2000MAX-STN6 [0000 ff5f] 12 - YUAN MPG600GR/Kuroutoshikou CX23416GYC-STVLP [12ab 0600,fbab 0600,1154 0523] 13 - I/O Data GV-MVP/RX [10fc d01e,10fc d038,10fc d039] 14 - I/O Data GV-MVP/RX2E [10fc d025] 15 - GOTVIEW PCI DVD (partial support only) [12ab 0600] 16 - GOTVIEW PCI DVD2 Deluxe [ffac 0600] 17 - Yuan MPC622 [ff01 d998] 18 - Digital Cowboy DCT-MTVP1 [1461 bfff] 19 - Yuan PG600V2/GotView PCI DVD Lite [ffab 0600,ffad 0600] 20 - Club3D ZAP-TV1x01 [ffab 0600] 21 - AverTV MCE 116 Plus [1461 c439] 22 - ASUS Falcon2 [1043 4b66,1043 462e,1043 4b2e] 23 - AverMedia PVR-150 Plus [1461 c035] 24 - AverMedia EZMaker PCI Deluxe [1461 c03f] ITVC16-STVLP LinuxでITVC16-STVLP CX23416GYC-STVLP、PC-MV51XR/PCI CX23416GYC-STVLPの解析(ぱ研.org) GV-MVP/RX、RX2、RX2W アイオーデータ製GV-MVP/RX、RX2系カードは、カーネル2.6.26以降ではカーネル標準のドライバで見れます。 カーネル2.6.25以前では標準のドライバでは音声が早送りになるので、パッチを当てる必要があります。以下のサイトを参照してください。 Fedoraで自宅サーバー構築の「LinuxをHDDビデオレコーダーにする」 CX23416GYC-STVLPの解析(ぱ研.org) かってにLinux なお、GV-MVP/RX3には現在対応ドライバがありません。 TRANSGEAR 5000TV、DCT-MTVP1、M175-B TRANSGEAR 5000TV(長瀬産業)、DCT-MTVP1(大陸志向)、AverMedia M175-B はカーネル2.6.22以降では標準のivtvドライバで見れます。modprobe.confの設定は以下のとおりです。 alias char-major-81 ivtv options ivtv cardtype=18 tuner=53 ntsc=j PC-MV5L/PCI kernel-2.6.26でPC-MV5L/PCIが動作したので報告です。 動作確認環境は、Gentoo Linux amd64です。 gentoo-sources-2.6.26をemerge、以下のコンフィグオプションでmakeします。(もっと絞ってもいいかも) CONFIG_VIDEO_DEV=m CONFIG_VIDEO_V4L2_COMMON=m CONFIG_VIDEO_ALLOW_V4L1=y CONFIG_VIDEO_V4L1_COMPAT=y CONFIG_VIDEO_MEDIA=m CONFIG_MEDIA_ATTACH=y CONFIG_MEDIA_TUNER=m CONFIG_MEDIA_TUNER_CUSTOMIZE=y CONFIG_MEDIA_TUNER_XC2028=m CONFIG_VIDEO_V4L2=m CONFIG_VIDEO_V4L1=m CONFIG_VIDEOBUF_GEN=m CONFIG_VIDEOBUF_DMA_SG=m CONFIG_VIDEO_BTCX=m CONFIG_VIDEO_IR_I2C=m CONFIG_VIDEO_IR=m CONFIG_VIDEO_TVEEPROM=m CONFIG_VIDEO_TUNER=m CONFIG_VIDEO_CAPTURE_DRIVERS=y CONFIG_VIDEO_HELPER_CHIPS_AUTO=y CONFIG_VIDEO_TVAUDIO=m CONFIG_VIDEO_TDA7432=m CONFIG_VIDEO_TDA9875=m CONFIG_VIDEO_MSP3400=m CONFIG_VIDEO_CS53L32A=m CONFIG_VIDEO_M52790=m CONFIG_VIDEO_WM8775=m CONFIG_VIDEO_WM8739=m CONFIG_VIDEO_VP27SMPX=m CONFIG_VIDEO_SAA711X=m CONFIG_VIDEO_SAA717X=m CONFIG_VIDEO_CX25840=m CONFIG_VIDEO_CX2341X=m CONFIG_VIDEO_SAA7127=m CONFIG_VIDEO_UPD64031A=m CONFIG_VIDEO_UPD64083=m CONFIG_VIDEO_BT848=m CONFIG_VIDEO_CX88=m CONFIG_VIDEO_IVTV=m 一旦ここで再起動して、ivtvがロードされている事を確認します。(PC-MV5L/PCIは認識されていません。) v4l-dvbドライバをインストールします。http //linuxtv.org/hg/v4l-dvb からダウンロードします(自分が試したのは以下のバージョンですが、最新版でも問題ないと思います)。ダウンロードしたファイルを適当な場所に置いてインストールします。 # tar xvjf v4l-dvb-77138834748a.tar.bz2 # cd v4l-dvb-77138834748a/ # make all (make menuconfigでドラバを絞ることも出来ます。) # make install ivtvのファームウェアをインストールします。http //dl.ivtvdriver.org/ivtv/firmware/ から最新のファームウェアをダウンロードして配置します。 # tar xvzf ivtv-firmware-20080701.tar.gz -C /lib/firmware/ xc3028のファームウェアをインストールします。上で解凍したv4l-dvbドライバの中の、linux/Documentation/video4linux/extract_xc3028.plファイルに手順が記載されていますので、それを参照して作業します。 # cd v4l-dvb-77138834748a/linux/Documentation/video4linux/ # wget http //www.steventoth.net/linux/xc5000/HVR-12x0-14x0-17x0_1_25_25271_WHQL.zip # unzip -j HVR-12x0-14x0-17x0_1_25_25271_WHQL.zip Driver85/hcw85bda.sys # chmod a+x extract_xc3028.pl # ./extract_xc3028.pl # cp xc3028-v27.fw /lib/firmware/ 再起動します。以下のdmesgになっていればOKです。Linux video capture interface v2.00 ivtv Start initialization, version 1.3.0 ivtv0 Initializing card #0 ivtv0 Autodetected Buffalo PC-MV5L/PCI card (cx23416 based) ivtv0 Unreasonably low latency timer, setting to 64 (was 32) cx25840 0-0044 cx25843-24 found @ 0x88 (ivtv i2c driver #0) tuner 0-0061 chip found @ 0xc2 (ivtv i2c driver #0) xc2028 0-0061 creating new instance xc2028 0-0061 type set to XCeive xc2028/xc3028 tuner firmware requesting v4l-cx25840.fw cx25840 0-0044 loaded v4l-cx25840.fw firmware (16382 bytes) ivtv0 Registered device video0 for encoder MPG (4096 kB) ivtv0 Registered device video32 for encoder YUV (2048 kB) ivtv0 Registered device vbi0 for encoder VBI (1024 kB) ivtv0 Registered device video24 for encoder PCM (320 kB) ivtv0 Initialized card #0 Buffalo PC-MV5L/PCI ivtv End initialization firmware requesting v4l-cx2341x-enc.fw ivtv0 Loaded v4l-cx2341x-enc.fw firmware (376836 bytes) ivtv0 Encoder revision 0x02060039 firmware requesting xc3028-v27.fw xc2028 0-0061 Loading 80 firmware images from xc3028-v27.fw, type xc2028 firmware, ver 2.7 xc2028 0-0061 Loading firmware for type=BASE (1), id 0000000000000000. xc2028 0-0061 Loading firmware for type=(0), id 000000000000b700. SCODE (20000000), id 000000000000b700 xc2028 0-0061 Loading SCODE for type=MONO SCODE HAS_IF_4320 (60008000), id 0000000000008000. xc2028 0-0061 Loading firmware for type=(0), id 000000000000b700. SCODE (20000000), id 000000000000b700 xc2028 0-0061 Loading SCODE for type=MONO SCODE HAS_IF_4320 (60008000), id 0000000000008000. xc2028 0-0061 Loading firmware for type=(0), id 000000000000b700. SCODE (20000000), id 000000000000b700 xc2028 0-0061 Loading SCODE for type=MONO SCODE HAS_IF_4320 (60008000), id 0000000000008000. SAA7130/7133/7134系カードの場合 SAA7133GYC-STVLP Linuxで最強のテレビ録画サーバを目指す【6】ソフトエンコカード篇 SAA7133-STVPCI modprobe.confに以下の行を追加します。 alias char-major-81 saa7134 options saa7134 card=17 tuner=2 TV/キャプチャカードを使えるようにする手順 ここでは、KUROUTO SHIKOU の TVチューナー搭載ビデオキャプチャカード SAA7130-STVLP の場合で説明します。このカードでは、kernel を再構築したり、module 変更、ドライバのインストールは不要です。 手順1:カードの取り付け 電源コードを取り外してから、本体カバーを開ける。 カード本体を PCI ソケットに差し込み、固定する。 カード本体のコンポジット端子に附属コネクターを接続する。 コネクターのうちのピンジャックに、付属ピンプラグを接続する。 付属ピンプラグのもう一方の端を、マザーボードの Line-in または Microphone に接続する。 ( 注意: カード直付のミニジャックは音声出力用端子ではなく、リモコン用端子です。) カードの取り付けは以上です。次はパソコンを立ち上げ、その設定をします。 ターミナルより、root になって次のコマンドを実行します。 手順2:モジュールのロード CentOS / Fedora Core の場合: # /sbin/modprobe saa7134 card=10 tuner=43 Debian の場合: # modprobe saa7134 card=10 tuner=43 Mandriva の場合は、上記どちらのコマンドでも構いません。 KNOPPIX の場合: $ su root@0[knoppix]# rmmod saa7134 root@0[knoppix]# modprobe saa7134 card=10 tuner=43 root@0[knoppix]# exit モジュールの読み込み状況を確認 (dmesg) モジュールが正しくロードされると、 dmesg コマンドでメッセージ中に次の表示が出ます(Fedora Core 3, kernel 2.6.9 の例)。 tuner chip found at addr 0xc2 i2c-bus saa7130[0] tuner type set to 43 (Philips NTSC MK3 (FM1236MK3 or FM1236/F)) by saa7130[0] saa7130[0] registered device video0 [v4l2] saa7130[0] registered device vbi0 参考 dmesg からカードの情報を調べる ターミナルより dmesg を実行すると、カード設定の際に参考となる情報が得られます。 対応カードのリストについては、kernel-doc がインストールされていれば以下のコマンドで確認できます。 su updatedb cat `locate CARDLIST.saa7134` 参考 カードリストファイルからチューナーの対応状況を調べる (CARDLIST.tuner) 同じく、CARDLIST.tuner ファイルより、チューナーの対応情報を知ることができます。 tuner=0 - Temic PAL (4002 FH5) tuner=1 - Philips PAL_I (FI1246 and compatibles) tuner=2 - Philips NTSC (FI1236,FM1236 and compatibles) tuner=3 - Philips (SECAM+PAL_BG) (FI1216MF, FM1216MF, FR1216MF) tuner=4 - NoTuner tuner=5 - Philips PAL_BG (FI1216 and compatibles) tuner=6 - Temic NTSC (4032 FY5) tuner=7 - Temic PAL_I (4062 FY5) tuner=8 - Temic NTSC (4036 FY5) tuner=9 - Alps HSBH1 tuner=10 - Alps TSBE1 tuner=11 - Alps TSBB5 tuner=12 - Alps TSBE5 tuner=13 - Alps TSBC5 tuner=14 - Temic PAL_BG (4006FH5) tuner=15 - Alps TSCH6 tuner=16 - Temic PAL_DK (4016 FY5) tuner=17 - Philips NTSC_M (MK2) tuner=18 - Temic PAL_I (4066 FY5) tuner=19 - Temic PAL* auto (4006 FN5) tuner=20 - Temic PAL_BG (4009 FR5) or PAL_I (4069 FR5) tuner=21 - Temic NTSC (4039 FR5) tuner=22 - Temic PAL/SECAM multi (4046 FM5) tuner=23 - Philips PAL_DK (FI1256 and compatibles) tuner=24 - Philips PAL/SECAM multi (FQ1216ME) tuner=25 - LG PAL_I+FM (TAPC-I001D) tuner=26 - LG PAL_I (TAPC-I701D) tuner=27 - LG NTSC+FM (TPI8NSR01F) tuner=28 - LG PAL_BG+FM (TPI8PSB01D) tuner=29 - LG PAL_BG (TPI8PSB11D) tuner=30 - Temic PAL* auto + FM (4009 FN5) tuner=31 - SHARP NTSC_JP (2U5JF5540) tuner=32 - Samsung PAL TCPM9091PD27 tuner=33 - MT20xx universal tuner=34 - Temic PAL_BG (4106 FH5) tuner=35 - Temic PAL_DK/SECAM_L (4012 FY5) tuner=36 - Temic NTSC (4136 FY5) tuner=37 - LG PAL (newer TAPC series) tuner=38 - Philips PAL/SECAM multi (FM1216ME MK3) tuner=39 - LG NTSC (newer TAPC series) tuner=40 - HITACHI V7-J180AT tuner=41 - Philips PAL_MK (FI1216 MK) tuner=42 - Philips FCV1236D ATSC/NTSC dual in tuner=43 - Philips NTSC MK3 (FM1236MK3 or FM1236/F) tuner=44 - Philips 4 in 1 (ATI TV Wonder Pro/Conexant) tuner=45 - Microtune 4049 FM5 tuner=46 - Panasonic VP27s/ENGE4324D tuner=47 - LG NTSC (TAPE series) tuner=48 - Tenna TNF 8831 BGFF) tuner=49 - Microtune 4042 FI5 ATSC/NTSC dual in tuner=50 - TCL 2002N tuner=51 - Philips PAL/SECAM_D (FM 1256 I-H3) tuner=52 - Thomson DTT 7610 (ATSC/NTSC) tuner=53 - Philips FQ1286 tuner=54 - tda8290+75 tuner=55 - TCL 2002MB tuner=56 - Philips PAL/SECAM multi (FQ1216AME MK4) tuner=57 - Philips FQ1236A MK4 tuner=58 - Ymec TVision TVF-8531MF/8831MF/8731MF tuner=59 - Ymec TVision TVF-5533MF tuner=60 - Thomson DTT 761X (ATSC/NTSC) tuner=61 - Tena TNF9533-D/IF/TNF9533-B/DF tuner=62 - Philips TEA5767HN FM Radio tuner=63 - Philips FMD1216ME MK3 Hybrid Tuner tuner=64 - LG TDVS-H06xF tuner=65 - Ymec TVF66T5-B/DFF tuner=66 - LG TALN series tuner=67 - Philips TD1316 Hybrid Tuner tuner=68 - Philips TUV1236D ATSC/NTSC dual in tuner=69 - Tena TNF 5335 and similar models tuner=70 - Samsung TCPN 2121P30A tuner=71 - Xceive xc3028 tuner=72 - Thomson FE6600 tuner=73 - Samsung TCPG 6121P30A tuner=75 - Philips TEA5761 FM Radio (CARDLIST.tuner は、Fedora 8, kernel 2.6.23 の場合です。) OS 起動時に自動的にロードするように設定したい (SAA7130-STVLP での例) 上記項目では、その都度オプションを付け手動でモジュールをロードしなくてはいけません。この方法ではめんどうという方は、次の設定を行って全てが自動で認識されるように変更してください。 CentOS / Fedora / Scientific Linux の場合 (/etc/modprobe.conf に追記) root になって /etc/modprobe.conf をエディタで開き、次の行を追加します。 alias char-major-81saa7134 options saa7134 card=10 tuner=43 この設定変更は、再起動後に有効となります。 Debian Sarge の場合 (/etc/modutils に新規ファイルを作成) root になって /etc/modutils をエディタで開き、適当な名前で新規ファイルを作成します。新規ファイル(例えば saa7134 )に、次の記述をします。 alias char-major-81saa7134 options saa7134 card=10 tuner=43 書き換えが済んだら、モジュールの設定を更新します。 update-modules 設定変更は、再起動後に有効となります。 映像や音声が出ない 状況によって色々な原因が考えられますが、動作することが予め確認されているカードを使用する場合には、次の点を再度見直しましょう。 付属コードの接続を確認 音が出ない場合に、キャプチャカードからLine入力(またはマイク端子)への接続を忘れている場合が多いようです。 ボリュームコントロールの設定を行っていない。 Line-in や Microphone 入力が、ミュートになっていたり音量ゼロになっていることがあります。 モジュールの再読み込み root になって次のコマンドを実行し、一度モジュールを解除(アンロード)した後、再度モジュールをロードし直します。 /sbin/rmmod saa7134 ( rmmod saa7134 ← Debian Sarge の時はこちら。) TV 視聴用ソフトの設定 カードはロードされていてもソフトウェア側で設定を失敗していることがあります。ソフトウェア添付のマニュアルを読み直しましょう。 アンテナ入力信号が極端に弱いとき きちんとしたアンテナを設置して引き込むことが最も有効ですが、設置場所の事情が許さないのなら、室内アンテナを接続するだけでも改善することがあります。 視聴ソフトなど TV の視聴をするのに他に必要なソフトについて知りたい ソフトウェアエンコードのカードの場合、xawtv (X Aplication for Waching TV) や tvtime などが利用できます。 ivtv系のハードウェアエンコードのカードの場合、TVsw が利用できます。 TV の予約録画や番組のキャプチャをするのに必要なソフトを知りたい epgrec http //www.mda.or.jp/epgrec/ foltia http //www.dcc-jpl.com/soft/foltia/ rec10 http //www.rec10.org/xoops/modules/pico/index.php?content_id=4 最近人気の MythTV という専用ソフトウェアが無料で配布されています。 現在見ているテレビ放送の録画は、xawtv 付属(*1)の streamer でも行なえます。 詳しくは、次の関連項目を見てください。 ソフト別FAQ MythTV ソフト別FAQ xawtv 2ch Linux板スレッド 【視聴・録画】Linuxでテレビ総合【デジタル/アナログ】 6 http //engawa.2ch.net/test/read.cgi/linux/1326804531/ 5 http //engawa.2ch.net/test/read.cgi/linux/1309182037/ 4 http //hibari.2ch.net/test/read.cgi/linux/1293388638/ 3 http //hibari.2ch.net/test/read.cgi/linux/1269999876/ 2 http //pc11.2ch.net/test/read.cgi/linux/1253880711/ 1 http //pc11.2ch.net/test/read.cgi/linux/1231189481/ Linuxでテレビを見る http //pc11.2ch.net/test/read.cgi/linux/1013649811/ Linuxでビデオ録画 6 http //pc11.2ch.net/test/read.cgi/linux/1193058543/ 5 http //pc8.2ch.net/test/read.cgi/linux/1108472453/ 3 http //pc5.2ch.net/test/read.cgi/linux/1079827632/ 2 http //pc.2ch.net/test/read.cgi/linux/1064630874/ 1 http //pc.2ch.net/linux/kako/990/990902141.html 【BT878】Linuxでのキャプチャを語るスレ http //pc11.2ch.net/test/read.cgi/linux/1017186805/ Linuxでfriio http //pc11.2ch.net/test/read.cgi/linux/1213378360/ 【鉄壁を】フリーオ解析・研究スレ 【破れ】 4 http //pc11.2ch.net/test/read.cgi/avi/1208215416/ 3 http //pc11.2ch.net/test/read.cgi/avi/1198294692/ 2 http //pc11.2ch.net/test/read.cgi/avi/1196177849/ 1 http //pc11.2ch.net/test/read.cgi/avi/1194360300/
https://w.atwiki.jp/wiki3_jjk/pages/16.html
これはなに? ファイアウォールやIDS(不正アクセス検知)を抜けて攻撃するツール。これでテストして、攻撃の耐性を確認する。 ダウンロードからインストール 以下のライブラリがインストールされている必要がある。 libpcap libevent libdnet 私の環境ではlibpcapのみインストールされていたので、その他二つについてインストールを行い、最後にfragrouteのインストールを行った。 RPMでインストールすると、うまくfragrouteのconfigureスクリプトが走らないので、ソースからビルドする。 libeventのインストール $ wget http //www.monkey.org/~provos/libevent-1.1a.tar.gz $ tar xzvf libevent-1.1a.tar.gz $ cd libevent-1.1a $ ./configure $ make $ su # make install # exit libdnetのインストール $ wget http //jaist.dl.sourceforge.net/sourceforge/libdnet/libdnet-1.10.tar.gz $ tar xzvf libdnet-1.10.tar.gz $ cd libdnet-1.10 $ ./configure $ make $ su # make install # exit fragrouteのインストール $ wget http //monkey.org/~dugsong/fragroute/fragroute-1.2.tar.gz $ tar xzvf fragroute-1.2.tar.gz $ cd fragroute-1.2 $ ./configure $ make $ su # make install # exit fragrouteの起動 普通に起動させるとライブラリが発見できないという趣旨のエラーが表示された。以下のコマンドで応急処置。 $ su # ln -s /usr/local/lib/libdnet.so.1.0.0 /usr/lib/libdnet.so.1 # ln -s /usr/local/lib/libevent-1.1a.so.1.0.2 /usr/lib/libevent-1.1a.so.1 # exit 注意 fragrouteはバックドアとしても使えるので、不用意にインストールしないこと -P